package dal

type InitDAO struct {
	Q                                *Query
	AdminMenuDAO                     *AdminMenuDAO
	AdministratorDAO                 *AdministratorDAO
	CategoryDAO                      *CategoryDAO
	ProductMaterialDAO               *ProductMaterialDAO
	OrdersItemDAO                    *OrdersItemDAO
	AdminRoleMenuRelationDAO         *AdminRoleMenuRelationDAO
	ExpressDAO                       *ExpressDAO
	ProductItemDAO                   *ProductItemDAO
	ProductSpecificationsTemplateDAO *ProductSpecificationsTemplateDAO
	ProductSpecDAO                   *ProductSpecDAO
	UserPointsLogDAO                 *UserPointsLogDAO
	AdminRoleRelationDAO             *AdminRoleRelationDAO
	BizDAO                           *BizDAO
	ProductMaterialGroupDAO          *ProductMaterialGroupDAO
	OrderDAO                         *OrderDAO
	UserDAO                          *UserDAO
	ProductSpecValueDAO              *ProductSpecValueDAO
	AdminRoleDAO                     *AdminRoleDAO
	ProductDAO                       *ProductDAO
	OrdersLogDAO                     *OrdersLogDAO
}

func NewInitDAO(bizID int64) *InitDAO {
	return &InitDAO{
		Q:                                Q,
		AdminMenuDAO:                     newAdminMenuDAO(bizID),
		AdministratorDAO:                 newAdministratorDAO(bizID),
		CategoryDAO:                      newCategoryDAO(bizID),
		ProductMaterialDAO:               newProductMaterialDAO(bizID),
		OrdersItemDAO:                    newOrdersItemDAO(bizID),
		AdminRoleMenuRelationDAO:         newAdminRoleMenuRelationDAO(bizID),
		ExpressDAO:                       newExpressDAO(bizID),
		ProductItemDAO:                   newProductItemDAO(bizID),
		ProductSpecificationsTemplateDAO: newProductSpecificationsTemplateDAO(bizID),
		ProductSpecDAO:                   newProductSpecDAO(bizID),
		UserPointsLogDAO:                 newUserPointsLogDAO(bizID),
		AdminRoleRelationDAO:             newAdminRoleRelationDAO(bizID),
		BizDAO:                           newBizDAO(bizID),
		ProductMaterialGroupDAO:          newProductMaterialGroupDAO(bizID),
		OrderDAO:                         newOrderDAO(bizID),
		UserDAO:                          newUserDAO(bizID),
		ProductSpecValueDAO:              newProductSpecValueDAO(bizID),
		AdminRoleDAO:                     newAdminRoleDAO(bizID),
		ProductDAO:                       newProductDAO(bizID),
		OrdersLogDAO:                     newOrdersLogDAO(bizID),
	}
}
